上一篇中我們成功取得 Workbook、WorksheetCollection 後,接著我們可以透過 Worksheet:
- 取得/設定 Worksheet 的各項資訊,如:背景、隱藏工作表、顯示尺標、顯示大綱等
- 取得其他功能的 Collection,如:圖表、資料驗證、樞紐分析、嵌入外部檔案等
取得 Worksheet
上篇中介紹了 Worksheet 有三個參數(index、sheetName、sheetType),在取得 Worksheet 時,我們可以利用 index 或 sheetName 來取得特定的 Worksheet 物件,或是使用 for 遍歷所有 Worksheet,如下例。
Workbook workbook = new Workbook("file.xls");
WorksheetCollection sheets = workbook.getWorksheets();
// 根據 index、sheetName 取得特定 Worksheet 物件
Worksheet sheet1 = sheets.get(index);
Worksheet sheet2 = sheets.get(sheetName);
// 使用 for 遍歷所有 Worksheet
for(int i = 0; i < worksheets.getCount(); i++) {
Worksheet sheet = sheets.get(i);
}
Worksheet
成功取得 Worksheet 後,接著我們可以設定 Worksheet 的默認參數,或取得 Worksheet 底下的其他 Collection。
Worksheet Property
取得 Worksheet 資訊
getter |
setter |
說明 |
(String)getName() |
setName(String) |
sheetName,使用者設定的名稱 |
(String)getCodeName() |
setCodeName(String) |
系統中的 sheetName,預設為:Sheet1、Sheet2、... |
(String)getUniqueId() |
setUniqueId(String) |
sheet 的唯一值,範例:{07e90875-9ec9-48fb-9fbc-3a02eaea8f85} |
(int)getIndex() |
|
這個 sheet 在 WorksheetCollection 中排第幾個(0,1,2,...) |
(int)getTabId() |
setTabId |
這個 sheet 排在第幾個(1,2,3,...) |
(int)getType() |
setType(int) |
這個 sheet 的 SheetType |
(boolean)hasAutofilter() |
|
是否含有篩選器 |
(boolean)isProtected() |
|
是否被保護 |
(int)getFirstVisibleColumn() |
setFirstVisibleColumn(int) |
取得第一個可見行 |
(int)getFirstVisibleRow() |
setFirstVisibleRow(int) |
取得第一個可見列 |
Worksheet 顯示設定:
getter |
setter |
說明 |
(byte[])getBackgroundImage() |
setBackgroundImage(byte[]) |
設定背景圖片 |
setBackground(byte[]) |
設定背景 |
|
(aspose.cells.Color)getTabColor() |
setTabColor(aspose.cells.Color) |
工作表標籤顏色設定 |
(boolean)getDisplayRightToLeft |
setDisplayRightToLeft(boolean) |
sheet 是否由右往左顯示,預設為false |
(boolean)isVisible() |
setVisible(boolean) |
sheet 是否可見。false 為隱藏 sheet |
(int)getVisibilityType() |
setVisibilityType(int) |
VisibilityType,選項:HIDDEN(1):隱藏,使用者可取消隱藏、VERY_HIDDEN(2):隱藏,只能透過程式改為可見、VISIBLE(3):可見 |
// 可見
worksheets.get(3).setVisible(true);
worksheets.get(7).setVisibilityType(com.aspose.cells.VisibilityType.VISIBLE);
// 隱藏
worksheets.get(4).setVisible(false);
worksheets.get(5).setVisibilityType(com.aspose.cells.VisibilityType.HIDDEN);
// 隱藏,使用者不可取消隱藏,僅可透過程式取消隱藏
worksheets.get(6).setVisibilityType(com.aspose.cells.VisibilityType.VERY_HIDDEN);
檢視設定:
getter |
setter |
說明 |
(boolean)isRowColumnHeadersVisible() |
setRowColumnHeadersVisible(boolean) |
是否凍結頂端列 |
(int)getPaneState() |
|
回傳窗格狀態 PaneStateType,FROZEN(0)、FROZEN_SPLIT(1)、SPLIT(2)、NORMAL(3) |
// 凍結頂端列
sheet.setRowColumnHeadersVisible(true);
System.out.println(sheet.getPaneState()); //0
// 取消凍結首端列
sheet.setRowColumnHeadersVisible(false);
System.out.println(sheet.getPaneState()); //3
進階設定
getter |
setter |
說明 |
(boolean)isRulerVisible() |
setRulerVisible(boolean) |
是否顯示尺規 |
(boolean)isOutlineShown() |
setOutlineShown(boolean) |
是否顯示大綱 |
(boolean)getDisplayZeros() |
setDisplayZeros(boolean) |
當 cell 的值為零時,是否顯示 |
(int)getZoom() |
setZoom(int) |
顯示比例,輸入值應於100~400之間 |
(boolean)isPageBreakPreview() |
setPageBreakPreview(boolean) |
是否使用分頁預覽顯示,預設為false |
(int)getViewType() |
setViewType(int) |
檢視方式 ViewType,3種模式圖片說明,選項:標準模式 NORMAL_VIEW(0)、分頁預覽 PAGE_BREAK_PREVIEW(1)、整頁模式 PAGE_LAYOUT_VIEW(2) |
// 標準模式
worksheets.get(0).setPageBreakPreview(false);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.NORMAL_VIEW);
// 分頁預覽
worksheets.get(0).setPageBreakPreview(true);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.PAGE_BREAK_PREVIEW);
// 整頁模式
worksheets.get(2).setViewType(com.aspose.cells.ViewType.PAGE_LAYOUT_VIEW);
相容性設定:
getter |
setter |
說明 |
(boolean)getTransitionEntry() |
getTransitionEntry(boolean) |
Lotus 相容性設定以相容模式開啟 Lotus |
(boolean)getTransitionEvaluation() |
getTransitionEvaluation(boolean) |
Lotus 相容性設定將 Lotus 公式轉換為 Excel 公式 |
取得 Collection
常用功能區
插入功能區
頁面配置功能區
公式功能區
資料功能區
校閱功能區
開發人員功能區
檔案功能區
透過這次整理才驚覺 Excel 的功能這麼多,也見識到 aspose 這個工具的強大,希望這個總整理可以幫助您快速找到需要的物件。其中的一些物件也會出現在以後的文章中,並實際使用給您參考,敬請期待。
下一次要介紹的是 Cells,其中包含資料輸出等,感謝您的閱讀!